package org.example.util;

import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

/**
 * @author sxt
 * @version 1.0
 * @description TODO
 * @date 2023/7/31 22:35
 */
public class ReflectUtil {

    public static <T> List<Field> getAllFields(Class<T> clz) {
        // 定义属性集合
        List<Field> fieldList = new ArrayList<>();
        Class<?> tempClass = clz;
        while (tempClass != null) {
            //当父类为null的时候说明到达了最上层的父类(Object类)
            fieldList.addAll(Arrays.asList(clz.getDeclaredFields()));
            //得到父类,然后赋给自己
            tempClass = tempClass.getSuperclass();
        }
        return fieldList;
    }

}
